package com.wang.domain;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;

import javax.annotation.Resource;
import javax.inject.Inject;

/**
 * 依赖注入测试
 * @Autowired：spring的，按类型装配，多个相同则报错。可以使用@Primary指定默认的，或使用@Qualifier注解手动指定
 * @Qualifier：spring的，按照名称装配
 * @Resource：JDK自带
 * @Inject：需要在pom.xml中引入相关配置javax.inject
 */
public class DependencyInjectBean {
    @Autowired
    private BasicBean basicBean;
    @Autowired
    @Qualifier("wlyMultipartBean1")
    private MultipartBean multipartBean;
    @Autowired
    private MultipartBean primaryBean;
    /**
     * JSR 250的方式注入
     */
    @Resource
    private PrototypeBean prototypeBean;

    /**
     * JSR 330方式注入，需要在pom.xml中引入相关配置javax.inject
     */
    @Inject
    private ComponentBean componentBean;


    public void show() {
        System.out.println("basicBean is：" + basicBean + "，multipartBean is：" + multipartBean + "，primaryBean is：" + primaryBean + "，prototypeBean is：" + prototypeBean + "，componentBean is： " + componentBean);
    }
}
